import type { Dataset } from '../utils/use-dataset'

// 头部表单和表格列Dataset配置
export const configDataset: Dataset = {
  api: '/msp-admin/autoselect/getQueryObjByNo',
  proxyProps: {
    list: 'data',
    total: 'data.total',
    // 分页参数生成
    currentPage: 'currentPage',
    pageSize: 'pageSize'
  },
  dataHandler(data) {
    const datas = data?.data || {}
    const formItems = datas.tabOutputVos?.[0].filterOutputVos.map((item) => {
      return {
        label: item.filterName,
        prop: item.sqlValueNo
      }
    })
    const tableColumns = datas.tabOutputVos?.[0].columnOutputVos.map((item) => {
      return {
        title: item.columnName,
        field: item.columnNo
      }
    })
    return {
      data: {
        tabId: datas.tabOutputVos?.[0].tabId,
        dialogTitle: datas.selectName,
        formItems: formItems,
        tableColumns: tableColumns
      }
    }
  }
}

// 表格数据Dataset配置
export const tableDataset: Dataset = {
  api: '/msp-admin/autoselect/queryAutoSelectData',
  method: 'post',
  dataHandler(data) {
    return {
      data: data?.data?.list || []
    }
  },
  proxyProps: {
    list: 'data',
    total: 'data.total',
    // 分页参数生成
    currentPage: 'currentPage',
    pageSize: 'pageSize'
  }
}

/**
 * @param code 唯一code
 * @returns 表格配置数据请求参数
 */
export function getConfigDataParams(code) {
  return {
    selectNo: code
  }
}

/**
 * @param data 表单数据
 * @param code 唯一code
 * @param otherParams 其他参数，取请求配置返回的数据
 * @returns 表格数据请求参数
 */
export function getQueryDataParams(data, code, otherParams) {
  return {
    pageNum: 1,
    pageSize: 100,
    paramMap: data,
    selectNo: code,
    ...otherParams
  }
}
